package com.manner.groupon.utils;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;

public class IdUtils {

    private static String generateCurrentDateTime() {
        Date now = new Date();
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
        String formattedDate = dateFormat.format(now);
        return formattedDate;
    }


    public static String generateId() {
        /**
         * 生成 HB + 年月日时分秒 + 随机六位数的订单流水编号
         *
         * @return String
         * @author Manner
         * @date 2024/10/13 1:24
         */
        // 获取当前时间
        String formattedDate = generateCurrentDateTime();
        // 生成随机七位整数
        Random random = new Random();
        int randomSevenDigits = 100000 + random.nextInt(900000); // 保证七位
        // 组合成最终的订单编号
        // 注意：这里使用字符串拼接后转换为Long类型，需要确保结果不会超过Long的最大值
        String storeNo = "SJ" + formattedDate + randomSevenDigits;
        // 转换为Long类型
        return storeNo;
    }

    public static String generateRefundId() {
        /**
         * 生成 HB + 年月日时分秒 + 随机六位数的订单流水编号
         *
         * @return String
         * @author Manner
         * @date 2024/10/13 1:24
         */
        // 获取当前时间
        String formattedDate = generateCurrentDateTime();
        // 生成随机七位整数
        Random random = new Random();
        int randomSevenDigits = 100000 + random.nextInt(900000); // 保证七位
        // 组合成最终的订单编号
        // 注意：这里使用字符串拼接后转换为Long类型，需要确保结果不会超过Long的最大值
        String storeNo = formattedDate + randomSevenDigits;
        // 转换为Long类型
        return storeNo;
    }

}
